/**
 * @(#)Kalender.java
 * 1.0, 2013-01-24
 */
package de.hdm.gruppenkalender.team04.data;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Vector;

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.9F03F8F2-CCBF-E6F2-40FB-FD7EBFB36407]
// </editor-fold>
/**
 * Schnittstellenspezifikation eines Kalenders.
 *
 * @author Mathias Bendel (mb167)
 * @author Björn Fichnter (bf023)
 * @author Stefan Hettich (sh176)
 * @author René Kugel (rk044)
 * @author Mark Leonberger (ml072)
 * @author Marta Przybylski (mp070)
 *
 * @version 1.0, 2013-01-24
 *
 * @see KalenderImpl
 */
public interface Kalender extends Remote {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.F34A045F-F1B2-9AFB-0859-59D559725495]
    // </editor-fold> 
    /**
     * Gibt die ID des {@link Kalender}s zurück.
     *
     * @return  int             kalenderId
     * @throws  RemoteException
     */
    public int getKalenderId() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.DD9D74F1-2C2E-1B4C-1E08-F2B799C36EF9]
    // </editor-fold> 
    /**
     * Setzt eine neue ID des {@link Kalender}s.
     *
     * @param   kalenderId
     * @throws  RemoteException
     */
    public void setKalenderId(int kalenderId) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.42707491-8B12-F03B-53ED-7763A58B6205]
    // </editor-fold> 
    /**
     * Gibt die Bezeichnung des {@link Kalender}s zurück.
     *
     * @return  String          bezeichnung
     * @throws  RemoteException
     */
    public String getBezeichnung() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.B6FBD74B-F56E-F644-E86F-605BA7B1DCA6]
    // </editor-fold> 
    /**
     * Setzt eine neue Bezeichnung.
     *
     * @param   bezeichnung
     * @throws  RemoteException
     */
    public void setBezeichnung(String bezeichnung) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.CE2D1C68-724F-8A75-2B87-7B293E826B95]
    // </editor-fold> 
    /**
     * Gibt die ID des Besitzers ({@link Person}) zurück.
     *
     * @return  int             besitzerId
     * @throws  RemoteException
     */
    public int getBesitzerId() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.165C8132-D88F-6D69-8798-BD8E6069791C]
    // </editor-fold> 
    /**
     * Setzt eine neue Besitzer ({@link Person}).
     *
     * @param   besitzerId
     * @throws  RemoteException
     */
    public void setBesitzerId(int besitzerId) throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.60769D7B-211F-1612-6343-9C58504796F8]
    // </editor-fold> 
    /**
     * Gibt einen {@link Vector} von {@link Integer}-Werten mit den
     * zugriffsberechtigten {@link Person}en zurück.
     *
     * @return  Vector<Integer> Zugriffberechtigten-IDs.
     * @throws  RemoteException
     */
    public Vector<Integer> getZugriffsberechtigteId() throws RemoteException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.1513D430-B21A-26F4-0EA0-ED727FB7BEBE]
    // </editor-fold> 
    /**
     * Setzt einen neuen Zugriffsberechtigten-{@link Vector}.
     *
     * @param   zugriffsberechtigteId
     * @throws  RemoteException
     */
    public void setZugriffsberechtigteId(Vector<Integer> zugriffsberechtigteId)
            throws RemoteException;

    /**
     * Gibt einen eindeutigen Identifikations-String zu Anzeige in der GUI zurück.
     *
     * @return  String          IdentifikationsName
     * @throws  RemoteException
     */
    public String ermittleIdentifikationsName() throws RemoteException;
}
